package org.lds.hotkey.console.business.currhotkey.service;

import org.lds.hotkey.common.model.dto.ResultDTO;
import org.lds.hotkey.common.model.pojo.OrderBy;
import org.lds.hotkey.common.model.pojo.PageResult;
import org.lds.hotkey.console.business.currhotkey.entity.CurrHotKey;
import org.lds.hotkey.console.business.currhotkey.model.request.*;
import org.lds.hotkey.console.business.currhotkey.model.response.*;
import org.lds.hotkey.console.remote.model.request.CurrHotKeySaveRequest;


/**
 *  基础服务类
 *
 * @author lidongsheng
 * @since 2024-07-15
 */
public interface CurrHotKeyBaseService {
    /**
    * 创建
    */
    ResultDTO<CurrHotKeyBaseResponse> createCurrHotKey(CurrHotKeyBaseCreateRequest request);

    /**
     * 保存
     */
    ResultDTO<Boolean> saveCurrHotKey(CurrHotKeySaveRequest request);

    /**
    * 批量创建
    */
    ResultDTO<CurrHotKeyBaseBatchCreateResponse> batchCreateCurrHotKey(CurrHotKeyBaseBatchCreateRequest request);

    /**
    * 删除
    */
    ResultDTO<CurrHotKeyBaseDeleteResponse> deleteCurrHotKey(CurrHotKeyBaseDeleteRequest request);

    /**
    * 批量删除
    */
    ResultDTO<CurrHotKeyBaseBatchDeleteResponse> batchDeleteCurrHotKey(CurrHotKeyBaseBatchDeleteRequest request);

    /**
    * 更新
    */
    ResultDTO<CurrHotKeyBaseResponse> updateCurrHotKey(CurrHotKeyBaseUpdateRequest request);

    /**
    * 批量更新
    */
    ResultDTO<CurrHotKeyBaseBatchUpdateResponse> batchUpdateCurrHotKey(CurrHotKeyBaseBatchUpdateRequest request);

    /**
    * 根据ID查询
    */
    ResultDTO<CurrHotKeyBaseResponse> getCurrHotKeyById(CurrHotKeyBaseGetByIdRequest request);

    /**
    * 根据ID集合查询
    */
    ResultDTO<CurrHotKeyBaseListResponse> getCurrHotKeyByIds(CurrHotKeyBaseGetByIdsRequest request);

    /**
    * 根据业务主键查询
    */
    CurrHotKey getCurrHotKeyByKey(CurrHotKeyBaseGetByKeyRequest request);

    /**
    * 查询
    */
    ResultDTO<CurrHotKeyBaseListResponse> listCurrHotKey(CurrHotKeyBaseListRequest request);

    /**
    * 查询所有
    */
    ResultDTO<CurrHotKeyBaseListResponse> listAllCurrHotKey(OrderBy orderBy);

    /**
    * 分页查询
    */
    ResultDTO<PageResult<CurrHotKeyBaseResponse>> listCurrHotKeyPage(CurrHotKeyBaseListPageRequest request);

                                            
                                            
    /***************************** 异步尝鲜 谨慎使用[性能提升10倍以上] start ******************************/
    
    /**
    * 异步批量创建
    */
    ResultDTO<CurrHotKeyBaseBatchCreateResponse> batchCreateCurrHotKeyAsync(CurrHotKeyBaseBatchCreateRequest request);
    
    /**
    * 异步批量删除
    */
    ResultDTO<CurrHotKeyBaseBatchDeleteResponse> batchDeleteCurrHotKeyAsync(CurrHotKeyBaseBatchDeleteRequest request);
    
    /**
    * 异步批量更新
    */
    ResultDTO<CurrHotKeyBaseBatchUpdateResponse> batchUpdateCurrHotKeyAsync(CurrHotKeyBaseBatchUpdateRequest request);
    
    /***************************** 异步尝鲜 谨慎使用[性能提升10倍以上] end ******************************/
}